package lab02.test23;

import java.util.Scanner;//键盘输入
import java.text.ParseException;//ParseException是一个异常类，表示解析异常，
// 这里用import引入这个类，比如日期或者字符串格式化会抛出这个异常。
import java.text.SimpleDateFormat;//对日期进行格式化
import java.util.Date;//引入java包下util包下的Date（日期）这个类。

public class Test23 {
    //编写Java应用程序，从命令行输入你的生日信息，
    // 然后计算你的生日还有多少天，你的生日是星期几。


        public static void main(String[] args) throws ParseException {
            //throws关键字通常被应用在声明方法时，用来指定可能抛出的异常。
            // 多个异常可以使用逗号隔开。当在主函数中调用该方法时，
            // 如果发生异常，就会将异常抛给指定异常对象。
            Date now = new Date();//获取当前时间
            SimpleDateFormat f = new SimpleDateFormat("今天是：" + "yyyy年MM月dd日");//月份字母必需大写
            System.out.println(f.format(now));


       /* String s = String.format("%tY年%tm月%td日", new Date(), new Date(), new Date());
       //获取当前日期与时间并将其格式化令其只输出年月日
        */

            String a = String.format("%tj", new Date()); //%tj :一年中的第几天,是String类型
            int day1 = Integer.parseInt(a); //将字符串形式的天数强制转换为int类型


            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您的生日：(格式为xxxx-xx-xx)");
            String birthday = sc.nextLine();

            SimpleDateFormat birth = new SimpleDateFormat("yyyy-MM-dd");//将输入的字符串格式化
            Date t = birth.parse(birthday);//解析字符串为时间

//
            String days = String.format("%tj", t);
            String weekday = String.format("%tA", t);

            System.out.println("我的生日在" + weekday);

            int day2 = Integer.parseInt(days);
            if (day2 > day1) {
                System.out.println("距离我的生日还有" + (day2 - day1) + "天");
            } else
                System.out.println("我的生日已经过了" + (day1 - day2) + "天");
        }

    }

